/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.dao.impl.stored;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import oracle.jdbc.OracleTypes;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.jdbc.core.SqlOutParameter;
import pe.gob.fonafe.domain.ConsultaBean;
/**
 *
 * @author Irving
 */
public class ObtenerUsuariosConsultaSP extends StoredProcedure{
    
    private static final String PROC_PARAM ="USERGLC.P_OBTENER_USUARIOS_CONSULTA";
       
    public ObtenerUsuariosConsultaSP(DataSource ds) {
        super(ds,PROC_PARAM);
        declareParameter(new SqlParameter("P_TIPO_CONSULTA_RECLAMO", Types.VARCHAR));
        declareParameter(new SqlParameter("P_ID_USUARIO", Types.NUMERIC));
        declareParameter(new SqlParameter("P_ID_BIEN", Types.NUMERIC));
        declareParameter(new SqlParameter("P_ID_SUBASTA", Types.NUMERIC));
        declareParameter(new SqlOutParameter("cCursor", OracleTypes.CURSOR,new ObtenerUsuariosFinalesRowMapper()));
        compile();
    }
    
    public Map execute(String tipo_consul_rec, int idUsuario, String idBien, String idSubasta) {
        Map inputs = new HashMap();
        inputs.put("P_TIPO_CONSULTA_RECLAMO", tipo_consul_rec);
        inputs.put("P_ID_USUARIO", idUsuario);
        inputs.put("P_ID_BIEN", Integer.parseInt(idBien));
        inputs.put("P_ID_SUBASTA", Integer.parseInt(idSubasta));
        return super.execute(inputs);
    }       
    
    private static class ObtenerUsuariosFinalesRowMapper implements RowMapper<ConsultaBean>{
   
        public ConsultaBean mapRow(ResultSet rs, int rowNum) throws SQLException {
            ConsultaBean bean = new ConsultaBean();
            
            bean.setId_bien(rs.getInt("ID_BIEN"));
            bean.setDniUsuarioFinal(rs.getString("DNIUSUARIOFINAL"));
            bean.setNombreUsuarioFinal(rs.getString("NOMBREUSUARIOFINAL"));
            bean.setEmailUsuarioFinal(rs.getString("EMAILUSUARIOFINAL"));
            bean.setTelefonoUsuarioFinal(rs.getString("TELEFONOUSUARIOFINAL"));
            bean.setId_consulta(rs.getInt("ID_CONSULTAS"));
            bean.setId_subasta(rs.getInt("ID_SUBASTA"));
            bean.setFechaCreacion(rs.getDate("FECHACREACION"));
            bean.setTexto(rs.getString("texto"));
            return bean;
        }
    }
}
